package com.ruoyi.project.system.domain;

import java.util.Date;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;

import lombok.Data;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;

/**
 * 随手拍对象 sys_snapshot
 * 
 * @author ruoyi
 * @date 2024-05-20
 */
@Data
@TableName("sys_snapshot")
public class SysSnapshot {

    /** 随手拍ID */
    @TableId(type = IdType.AUTO)
    private Long id;

    /** 位置信息 */
    @Excel(name = "位置信息")
    private String location;

    /** 申报人 */
    @Excel(name = "申报人")
    private String reporter;

    /** 联系方式 */
    @Excel(name = "联系方式")
    private String contact;

    /** 问题描述 */
    @Excel(name = "问题描述")
    private String description;

    /** 状态：0-待处理，1-处理中，2-已完成，3-已驳回 */
    @Excel(name = "状态", readConverterExp = "0=待处理,1=处理中,2=已完成,3=已驳回")
    private Integer status;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /** 创建者用户名 */
    @Excel(name = "创建者")
    private Long createBy;

    /** 处理人员姓名 */
    @Excel(name = "处理人员姓名")
    private String processorName;

    /** 处理时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "处理时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date processTime;

    /** 处理备注 */
    @Excel(name = "处理备注")
    private String processRemark;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    /** 图片列表（非数据库字段） */
    @TableField(exist = false)
    private List<SysSnapshotImage> images;

    @Override
    public String toString() {
        return "SysSnapshot [id=" + id + ", location=" + location + ", reporter=" + reporter + ", contact=" + contact
                + ", description=" + description + ", status=" + status + ", createTime=" + createTime
                + ", createBy=" + createBy + ", processorName=" + processorName + ", processTime=" + processTime
                + ", processRemark=" + processRemark + ", delFlag=" + delFlag + "]";
    }
}